package base;

import utils.UIUtils;
import android.view.View;
import android.widget.TextView;

import com.example.googlemarketdemo.R;

public abstract class BaseHolder<HOLDBEANTYPE> {
	public View mHolderView;
	
	private HOLDBEANTYPE mData;
	
	public BaseHolder(){
		//初始化根视图
		mHolderView = initHolderView();
		//绑定根视图
		mHolderView.setTag(this);
	}

	/**
	 * 初始化持有的视图,必须实现但是不知道具体实现，定义成为抽象方法，交给实现类去实现
	 * @return
	 */
	protected abstract View initHolderView();

	/**
	 * 绑定数据的方法
	 * @param data 
	 */
	public void setDataAndRefreshHolderView(HOLDBEANTYPE data) {
		//保存数据
		mData = data;
		//数据和视图绑定
		refreshHolderView(data);
		
	}

	//绑定数据和视图
	protected abstract void refreshHolderView(HOLDBEANTYPE data);
}
